import {NativeModules} from 'react-native';

const {RNReactNativeMfbbShare} = NativeModules;

class ReactNativeMfbbShare {




/***
   * 页面开始
   * @param pageName 页面名称
   */
  static onPageStart = (pageName: string) => RNReactNativeMfbbShare.onPageStart(pageName);

  /***
   * 页面结束
   * @param pageName 页面名称
   */
  static onPageEnd = (pageName: string) => RNReactNativeMfbbShare.onPageEnd(pageName);


  /***
   * 自定义事件
   * @param eventId  事件ID,对应友盟后台的事件ID
   */
  static onEvent = (eventId: string) => RNReactNativeMfbbShare.onEvent(eventId);

  /**
   * 自定义标签统计事件
   * @param eventId    事件id
   * @param eventLable 为分类标签
   */
  static onEventWithLable = (eventId: string, eventLable: string) => RNReactNativeMfbbShare.onEventWithLable(eventId, eventLable);

  /***
   * 自定义 对象统计事件
   * @param eventId   为当前统计的事件ID
   * @param eventData 为当前事件的属性和取值（键值对），不能为空，如：{name:”umeng”,sex:”man”}
   */
  static onEventWithMap = (eventId: string, eventData: any) => RNReactNativeMfbbShare.onEventWithMap(eventId, eventData);

  /**
   * 自定义 对象和数值统计事件
   * @param eventId   为当前统计的事件ID
   * @param eventData  为当前事件的属性和取值（键值对），不能为空，如：{name:”umeng”,sex:”man”}
   * @param eventNum   用户每次触发的数值的分布情况，如事件持续时间、每次付款金额等
   */
  static onEventWithMapAndCount = (eventId: string, eventData: any, eventNum: number) => RNReactNativeMfbbShare.onEventWithMapAndCount(eventId, eventData, eventNum);

  /**
   *自定义 对象和数值统计事件
   * @param eventId 为当前统计的事件ID
   * @param eventData 为当前事件的属性和取值（键值对），不能为空，如：{name:”umeng”,sex:”man”}
   */
  static onEventObject = (eventId: string, eventData: any) => RNReactNativeMfbbShare.onEventObject(eventId, eventData);


    /***
     * 单独分享到某个平台
     * @param text  分享的文本内容
     * @param img   分享的图片
     * @param weburl 分享的链接
     * @param title  分享的标题
     * @param sharemedia 分享的平台：{0:qq,1:新浪微博，2：微信，3：微信朋友圈，4：qq空间}
     * @param successCallback  分享成功回调函数
     */
    static share = (text: string, img: string, weburl: string, title: string, sharemedia: number, successCallback: any) => RNReactNativeMfbbShare.share(text, img, weburl, title, sharemedia, successCallback)

    /***
     * 第三方登录
     * @param sharemedia 第三方登录平台 {0:qq,1:新浪微博，2：微信，3：微信朋友圈，4：qq空间}
     * @param successCallback  第三方登录的回调函数
     */
    static auth = (sharemedia: number, successCallback: any) => RNReactNativeMfbbShare.auth(sharemedia, successCallback);


    /***
     * 打开第三方分享的面板
     * @param text  分享的文本
     * @param img   分享的图片
     * @param weburl 分享的链接
     * @param title  分享的标题
     * @param sharemedias 分享的平台(传入一个数组 eg:[0,2,3,4])  分享的平台：{0:qq,1:新浪微博，2：微信，3：微信朋友圈，4：qq空间}
     * @param successCallback 分享成功的回调
     */
    static shareboard = (text: string, img: string, weburl: string, title: string, sharemedias: [], successCallback: any) => RNReactNativeMfbbShare.shareboard(text, img, weburl, title, sharemedias, successCallback);

  /**
   * 添加自定义分享按钮到分享面板上（仅仅支持iOS使用）
   * @param platform 自定义平台类型，一定在1000-2000之间
   * @param platformIconName  自定义按钮图像名称
   * @param platformName     自定义按钮名称
   * @returns {*}
   */
    static addCustomPlatformForIOS = (platform:number,platformIconName:string,platformName:string)=>RNReactNativeMfbbShare.addCustomPlatformWithoutFilted(platform,platformIconName,platformName);

  /**
   * ios  调用系统分享多张图片功能，可以分享到微信好友，QQ好友，QQ朋友圈，但分享不到微信朋友圈
   * @param urlArray
   * @param successCallback
   * @returns {*}
   */
    static shareForIosSystemWithImageUrl = (urlArray:any,successCallback: any)=>RNReactNativeMfbbShare.shareForIosSystemWithImageUrl(urlArray,successCallback);
/*
* 检测是否安装有微信或者QQ应用
* @param   platform 平台类型，1表示微信，2表示QQ
* @param   resultCallBack 返回结果，true表示安装了改平台，false表示没有安装，比如返回数据格式：['1':true],1表示平台类型，true表示安装了该应用
* */
    static isInstallPlatform = (platform:string,resultCallBack:any)=>RNReactNativeMfbbShare.isInstall(platform,resultCallBack);

  /*
****微信小程序分享(ios端)
platformType:平台，目前暂时只传微信UMSocialPlatformType_WechatSession=1
title：小程序标题
desc：小程序描述
thumimageUrl;小程序缩略图
webpageUrl:低版本小程序跳转H5链接
user_name;@"小程序username，如 gh_3ac2059ac66f";
path： @"小程序页面路径，如 pages/page10007/page10007";
type： UShareWXMiniProgramTypeRelease = 0,   正式版
     UShareWXMiniProgramTypeTest = 1,   发版
     UShareWXMiniProgramTypePreview = 2, 体验版
*/
    static shareMiniProgramToPlatformType = (platformType,title,desc,thumimageUrl,webpageUrl,user_name,path,type,completion)=>{
         RNReactNativeMfbbShare.shareMiniProgramToPlatformType(platformType,title,desc,thumimageUrl,webpageUrl,user_name,path,type,completion);
    }


}

export default ReactNativeMfbbShare;
